{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import json\n",
    "import matplotlib.pyplot as plt\n",
    "from eval_qa import eval_file\n",
    "import matplotlib.colors as mcolors\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# replace with your actual training steps for the examined checkpoints\n",
    "x = np.array([2000*i for i in range(1, 21)] + [50000 * (i+1) for i in range(100)])/1e5\n",
    "x = x[:33]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"local_dir/counterfactual_comparison.json\", \"r\", encoding='utf-8') as f:\n",
    "    results = json.load(f)\n",
    "\n",
    "def flatten(d):\n",
    "    res = dict()\n",
    "    for item in d:\n",
    "        for key, val in item.items():\n",
    "            if key not in res:\n",
    "                res[key] = []\n",
    "            res[key].append(val)\n",
    "    return res\n",
    "\n",
    "result_list = []\n",
    "for item in results:\n",
    "    temp = flatten(item)\n",
    "    for key, val in temp.items():\n",
    "        if \"rank\" in key:\n",
    "            temp[key] = np.mean(1/(np.array(val)+1))    # MRR\n",
    "        else:\n",
    "            temp[key] = 1 - np.mean(np.array(val)==0)   # ACC\n",
    "    result_list.append(temp)\n",
    "result_dict = flatten(result_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 500x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mats = []\n",
    "for i in range(33):\n",
    "    mat = np.zeros([7, 3])\n",
    "    for layer in range(7):\n",
    "        for pos, pref in enumerate([\"a\", \"e1\", \"e2\"]):\n",
    "            key = \"{}_{}\".format(pref, layer+1)\n",
    "            val = result_dict[key][i]\n",
    "            mat[layer, pos] = val\n",
    "    mats.append(mat)\n",
    "mats = np.array(mats)\n",
    "\n",
    "mat = mats[-1] - mats[10]   # delta in causal strength\n",
    "\n",
    "x_labels = ['Layer {}'.format(i) for i in range(1, 8)]\n",
    "y_labels = ['$a$', '$e_1$', '$e_2$']\n",
    "\n",
    "cmap = mcolors.LinearSegmentedColormap.from_list('orange_green', ['orange', 'white', 'green'], N=256)\n",
    "norm = mcolors.TwoSlopeNorm(vmin=-1.0, vmax=1.0, vcenter=0)\n",
    "fig, ax = plt.subplots(figsize=(5, 4))\n",
    "cax = ax.matshow(mat, cmap=cmap, norm=norm)\n",
    "cbar = fig.colorbar(cax, fraction=0.046, pad=0.04)\n",
    "cbar.ax.tick_params(labelsize=10)\n",
    "plt.yticks(range(mat.shape[0]), x_labels, fontsize=10)\n",
    "plt.xticks(range(mat.shape[1]), y_labels, fontsize=13)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbwAAAGXCAYAAADI2+UqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB2gklEQVR4nO3deVxU1fsH8M+dGfYdBBEQEXCGXQQEccENM7dc0rJyK00sNVP7lZZfs6w0zBY101zSzLRFNMUll9xyzdw3VJBVRUCWAQZmu78/iAvjzMAM2wDzvF8vX3rOnHvvM0eYZ+5yzmFYlmVBCCGEtHI8QwdACCGENAVKeIQQQowCJTxCCCFGgRIeIYQQo0AJjxBCiFGghEcIIcQoUMIjhBBiFCjhEUIIMQqU8AghhBgFSngNQCQS4eOPP66xzblz5yASiXDgwIEa2yUkJEAkEiEzM7MhQySEEKMnMHQAjSEjIwM//PADTp06hUePHgEA3N3dERUVhRdffBF+fn4GjrDl2rp1KywsLDBq1KgG3/e9e/ewf/9+jBw5Eh4eHg2+f0KIcWt1Ce/o0aOYPXs2+Hw+hg0bBj8/P/B4PKSkpODgwYPYtm0bjhw5And3d0OHqtHw4cMxZMgQmJqaGjoUjbZt2wYHB4dGS3irVq1CZGQkJTxCSINrVQkvPT0dc+bMgZubGzZt2gQXFxeV19955x38/PPP4PFqvpJbWloKS0vLxgxVKz6fDz6fb5BjG0p5eTlMTEwMHQYhpJVrVffw1q9fj9LSUixZskQt2QGAQCDAhAkT0K5dO65u3rx56NKlC9LT0/H666+jS5cueOeddwBUJL6lS5eid+/eCAoKwsCBA7FhwwbossDE6tWr4efnhy1btmhtI5VKERcXh/DwcFy8eBGA5nt4/fr1Q1xcHC5cuIDRo0cjODgY/fv3x65du9T2efv2bYwbNw4hISGIiYnB6tWrsWPHDp3uC+bk5GD+/PmIiYlBUFAQevbsiTfeeIPbrl+/frh79y7Onz8PkUgEkUiE8ePHAwAKCgrw+eefY9iwYejSpQvCwsIwZcoU3L59W+UYlfcy9+7di6+++gq9evVC586d8eOPP2LWrFkAgAkTJnD7P3fuHADg2rVrmDx5MqKiohASEoJ+/fph/vz5tfwvEEJIlVZ1hnf06FF06NABnTt31ms7uVyOyZMnIzw8HO+99x7Mzc3BsizeeOMNnDt3DqNHj4a/vz9OnjyJ+Ph4ZGdn4/3339e6v6+++gpr167Fxx9/jBdeeEFjm7KyMrz55pu4fv06fvjhB4SEhNQYY1paGmbNmoXRo0dj5MiR2LFjB+bNm4fAwEB06tQJAJCdnY2JEycCAKZOnQpLS0v89ttvOl8enTlzJu7du4dx48bB3d0dT548walTp/Dw4UN4eHjg/fffx+LFi2FpaYlp06YBANq0aQOg4r7p4cOH8eyzz8LDwwO5ubn45ZdfMG7cOOzduxdt27ZVOdbq1athYmKCyZMnQyqVomfPnhg/fjy2bNmCadOmwdvbGwDg4+ODvLw8TJ48GQ4ODpg6dSpsbW2RmZmJQ4cO6fS+CCEEAMC2EmKxmBUKheybb76p9lphYSGbl5fH/ZFIJNxr7733HisUCtkvvvhCZZtDhw6xQqGQXb16tUr9zJkzWZFIxKalpXF1QqGQ/eijj1iWZdmlS5eyfn5+bEJCgsp2Z8+eZYVCIbt//362uLiYHTduHBsVFcXevHlTpd2OHTtYoVDIZmRkcHV9+/ZlhUIh+88//3B1eXl5bFBQELt06VKubvHixaxIJFLZZ35+PhsZGam2T019JBQK2fXr12ttw7IsO2TIEHbcuHFq9eXl5axCoVCpy8jIYIOCgthVq1ap9UP//v1V/h9YlmX379/PCoVC9uzZsyr1lf8XV69erTE2QgipSau5pFlcXAwAGu+9jR8/HtHR0dyfrVu3qrV56aWXVMonTpwAn8/nLtlVeu2118CyLE6cOKFSz7IsPv74Y/z4449YtmwZRo4cqTFOsViMyZMnIyUlBVu2bIG/v79O78/X1xcRERFc2dHRER07dkRGRgZXd/LkSYSGhqrs097eHsOGDat1/+bm5jAxMcH58+dRWFioU0zVmZqacvdGFQoF8vPzYWlpiY4dO+LmzZtq7UeMGAFzc3Od9m1jYwMAOHbsGGQymd6xEUII0IouaVpZWQGouO/2tI8//hglJSXIzc3F//3f/6m9LhAI4OrqqlKXlZUFFxcXWFtbq9T7+Phwr1e3a9culJaWYtGiRRg6dKjWOD/77DNIpVLs3LmTuxSpi+r3HSvZ2dmpJKesrCyEhoaqtfP09Kx1/6ampnjnnXfw+eefo0ePHujcuTP69OmDESNGwNnZudbtlUolfvzxR/z888/IzMyEQqHgXrO3t1drr89TmJGRkRg4cCBWrVqFTZs2ITIyErGxsRg2bFizfZqVENL8tJozPBsbGzg7O+Pu3btqr3Xu3Bndu3dHWFiYxm2rn53UVVhYGNq0aYOtW7eioKBAa7v+/fuDZVl8//33UCqVOu+/KZ7cnDRpEv7880/MmTMHZmZm+OabbzB48GCNZ2hPW7NmDZYsWYKIiAgsW7YMGzZswA8//IBOnTppfMhH17M7AGAYBitWrODuCVbeQx01ahRKSkr0eo+EEOPVahIeAPTp0wdpaWm4evVqvffl7u6Ox48fc5dKK6WkpHCvV9ehQwds2LABjx8/xpQpU9S2qxQbG4vPPvsMiYmJ+Oijj+od59Mxp6WlqdWnp6frvA9PT0+89tpr2LhxIxITEyGTybBx40budYZhNG73559/IioqCp999hmGDBmCnj17onv37igqKtL52Nr2XSk0NBSzZ89GQkICvvjiC9y9exf79u3Tef+EEOPWqhLelClTYGFhgffffx+5ublqr2s609AmJiYGCoVC7X7fpk2bwDAMYmJi1Lbx8/PD999/j+TkZLzxxhsoKyvTuO8RI0ZgwYIF2L59O5YtW6ZzTLXp2bMnLl++jFu3bnF1BQUF2LNnT63bSiQSlJeXq9R5enrCysoKUqmUq7OwsNCYxPh8vlr/7t+/H9nZ2TrHb2FhAaDiPmd1hYWFavuuvE9ZPTZCCKlJq7mHBwBeXl744osvMHfuXDz77LPcTCssyyIzMxOJiYng8Xhq9+s06devH6KiovDVV18hKysLIpEIp06dwpEjRzBx4kSt98VCQ0OxevVqTJ06FW+99Ra+/fZbjYOqx40bh+LiYnz11VewsbHhHvOvjylTpmD37t149dVXMW7cOG5YQrt27VBQUFDjGVRqaiomTZqEZ599Fr6+vuDz+Th8+DByc3MxZMgQrl1gYCC2bduG1atXo0OHDnB0dER0dDT69OmDb7/9FvPnz0eXLl1w584d7NmzB+3bt9c5fn9/f/D5fKxbtw5isRimpqbo1q0b9uzZg23btiE2Nhaenp4oKSnBr7/+Cmtra41fPAghRJNWlfCAikuGe/bswcaNG3Hq1Cns2LEDDMPAzc0NvXv3xksvvaTTXJo8Hg/fffcdVqxYgX379iEhIQHu7u5499138dprr9W4bXR0NL7++mu89dZbePfdd7F8+XKN7aZNmwaxWMwlvVdeeaVO77lSu3bt8OOPP+KTTz7B2rVr4ejoiFdeeQUWFhb45JNPYGZmpnVbV1dXDBkyBGfOnMHu3bvB5/Ph7e2Nr7/+GgMHDuTaTZ8+HQ8ePMD69etRUlKCyMhIREdHY9q0aZBIJNizZw/27duHgIAArF27Vut718TZ2RkfffQR1q5diw8++AAKhQI//vgjIiMjce3aNezbtw+5ubmwsbFBSEgIvvjiC70SKiHEuDGsPtf5SIv06aef4pdffsGlS5eMbtoyQgip1Kru4RGo3TfMz8/H7t27ER4eTsmOEGLUWt0lTWP34osvIjIyEj4+PsjNzcWOHTtQXFyMN99809ChEUKIQdElzVbmyy+/xJ9//olHjx6BYRgEBARgxowZ6N69u6FDI4QQg6KERwghxCjQPTxCCCFGgRIeIYQQo0AJjxBCiFGghEcIIcQoUMIjhBBiFCjhEUIIMQqU8AghhBiFFpvwkpKSkJSUZOgwCCGEtBAtNuFJpdJ6r4VWXl6Of//9V20dOGNH/aId9Y121DfaUd9o1tT90mITXkNQKBQqf5MK1C/aUd9oR32jHfWNZk3dL0ad8AghhBgPSniEEEKMAiU8QgghRoESHiGEEKNACY8QQohRoIRHCCHEKFDCI4QQYhT0TnhpaWlYuHAhhg8fjoCAAAwdOlSn7ViWxffff48+ffogJCQEL774Ii5fvqzv4QkhhJA60Tvh3b17F8ePH0eHDh3g4+Oj83br1q3DihUrMGnSJKxduxbOzs547bXXkJGRoW8IhBBCiN70Tnj9+vXD8ePHsWLFCgQGBuq0TXl5OdauXYvXXnsNkyZNQnR0NL788kvY29tjw4YNegdNCCGE6Eug7wY8nv63/S5evIji4mIMGjSIqzM1NcWAAQNw6NAhvfdHCCE1Ud5Lh/J+FgDW0KFUkMrQJicHeFQMualJrc1ZlgULJVhWASUrBwsFWFZZ7d8KKNmKv1k8/W85WFZZ7d//tf9vu4p2zaNfFAoleFJA6mIHS0vfRj+e3gmvLlJSUgAA3t7eKvU+Pj7YvHkzysrKYG5urvd+WZZFaWlpneOSSCQqf5MK1C/aUd9o11z6RnnrHjL/jIfYPA9gDBoKhwULllHiYUHF3yyjhJJRcvVcmVGCZSrqjEnZ7gvo/GpCvfZhaWlZa5smSXhFRUUwNTWFmZmZSr2trS1YlkVhYWGdEp5MJsOtW7fqHV9qamq999EaUb9oR32jnUH7hmUh+Psb5DjV/3OBNB0J70m9P8vDw8NrbdMkCa+xmJiYwNe37qfBEokEqamp8PLygoWFRQNG1rJRv2hHfaNdc+ibvH8SkGRx0yDHblHYZnLqC0CgNIW7y3Nw9/dv/GM1+hFQcSYnlUpRXl6ucpZXVFQEhmFgZ2dXp/0yDKPTaWxtLCwsGmQ/rQ31i3bUN9oZqm8kRVm4d3t1VQULOLQNA6PDPbPGplAoUVIqga2NPQSm5uDxBGB4AvB4JmB4AjB8E/U6ngA8vmod77+23L95JlV/8zVsX/3v/7ZjGD4YpnkkvNLSUty6dQvu/v5N8jPTJAmv8t7d/fv34efnx9WnpKTAzc2tTpczCSGkklIhw7UD70KBqoVE2wt6QjTyGwNGVaXyg92viT7YiWZNMtNKWFgYrK2tsX//fq5OJpPh4MGDiImJaYoQCCGt2L3zq1CUf5sr25a2gU+/dwwYEWmO9D7Dk0gkOH78OAAgKysLxcXFOHDgAAAgMjISjo6OmDhxIh48eMANOTAzM0NcXBxWrlwJR0dHCIVCbNu2DQUFBZg8eXIDvh1CiLHJSTuB9Ks/cWWBwhR+/JEQeLc3YFSkOdI74eXl5WHWrFkqdZXlH3/8EVFRUVAqlWpLtr/++utgWRYbN27EkydP4O/vjw0bNqB9e/qhJITUTVnxI9w8ukilrtPDSFiN6WeYgEizpnfC8/DwQFJSUo1ttmzZolbHMAzi4uIQFxen7yEJIUSNUinHtSPvQ1ZeyNW5PRGijXkgeEGNP4iZtDy0WgIhpEVKubAWhY+ucGVriSO8ckLAj4kAU4cZoUjrRz8VhJAWJy/jDFIv/cCV+QoT+D2MBs/CCvzIIANGRpozSniEkBalvCQHN44uRPV5Mjs96gpzmTX43UPBmJkaLjjSrFHCI4S0GKxSget/LYBU8oSra5fvizbF7QE+D4KeXQwYHWnuKOERQlqM+5c2IP/BBa5sVWaPjjmhAABeWAAYOxsDRUZaAkp4hJAW4cmDC0j5dx1X5sMUfg+6g8fyAQCC3hGGCo20EJTwCCHNnlSSj+tHPgDYqmVzfB+Gw0JWcUbHE3qB5+ZiqPBIC0EJjxDSrLGsEjeOLoS0NJerc7WMgnORJ1fm09kd0QElPEJIs5Z2ZQvyMk5zZSt7b3RM8uHKjGsb8Pw6GiI00sJQwiOENFsFj64g+fy3XJknMEOA0wTwS6umLuT3jmg2y92Q5o0SHiGkWZKVFeLakflg2arkJur+LszPPaxqZGMFfniAAaIjLRElPEJIs8OyLG4c+wjlxdlcnWunwWhb7gc2r4CrE/TsAkbQJMt6klaAEh4hpNnJuL4NuWnHubKlXQf49ZoPxYmqMXgwEYDfnQaaE91RwiOENCtFOTdx92zVSuU8vimCBywFLysfbOoDrp7fNQiMlYUhQiQtFCU8QkizIS8X49rheWCVcq5O2H0ubJyEkB/7p6ohQ0MRiP4o4RFCmgWWZXHzxGJIirK4OhfvWLj7Pw9lXgGU1+5y9bxAX/CcHQ0RJmnBKOERQpqFrFs78DjlCFe2sHVHQMwCMAwDxfELAFu1OoKgT1dDhEhaOEp4hBCDE+fdwZ3Ty7kywxMgOHYpBGY2YEvLoDh/req19q5gOnoYIkzSwlHCI4QYlFxWimuH5kGpkHJ1nbrNgq1zxfg6xZnLgFTGvSbo05UGmpM6oYRHCDEYlmVx++QSlBamcXVtOvRG+6CXKl6XKyA/ebFqAwdb8EJETR0maSUo4RFCDOZh0h48uruPK5tZt0Vgnw+5MzjlpVtAUTH3uiAmHAyfPrZI3dBPDiHEIIrzU3D71FKuzDB8BPdfAhNzOwAVZ38qQxHMTcGPCmnqMEkrQgmPENLkFDJJxX07eTlX5xP5JuxdO3Nl5d00sA9zuDK/W2cw5mZNGidpXSjhEUKaXNLpL1CSn8yVndp3R4fOE1TaKKqf3fEYCHqFN1V4pJWihEcIaVKP7u7Hg9u7uLKZpTMC+34Mhqn6OFI+yoXy9n2uzOvsB8bBtinDJK0QJTxCSJMpLUzHrZOfVVUwPAT1/xSmFg4q7VTO7kADzUnDoIRHCGkSCnk5rh6aB4WslKvzDn8dDm6qlyrZomIo/r3JlRmf9uC1d22yOEnrRQmPENIk7p79GsV5SVzZwa0rOnaZrNZOfuoSoKha9JXO7khDoYRHCGl02SlHkHnjV65sauGIoH6LwfD4Ku1YqQyK05e5MuPiCJ6/T1OFSVo5SniEkEYlKcrCreMfV6thENhvMcysnNXaKi5cB0okXJkfEwGGR9OIkYZBCY8Q0miUChmuHZkPubRqthSvLq/CyaObWltWyVasilDJygL8iMCmCJMYCUp4hJBGc+/8ShQ9vsGV7Vw7wzsiTmNb5c17YHPyuTK/RxcwpiaNHiMxHpTwCCGNIif1BNKvbuXKJmZ2CO7/GXg8gcb2KtOICfgQ9OjS2CESI0MJjxDS4MqKH+HmsUUqdQF9F8HcWvPwAmXGQ7ApmVyZHx4IxsaqMUMkRogSHiGkQbFKOa4deR+y8kKuzjNkHJw7xGjdRv7UQHM+DUUgjYASHiGkQaVf2YjCR1e4sq1LIHwjZ2htz+YXQXmlanwez98bvLZOjRojMU6aL6YTQkgdyApvIOvuT1xZYGqN4P5LwONrf/hEfuICoGS5Mp3dkcZCZ3iEkAYhLc1Fyf2NAKqSl3/vhbCwdde6DSsph+LsVa7MuLuA5+vZmGESI0YJjxBSb6xSgTt/LwYrF3N1HoEvoK13/xq3U5y7ApRLubKgd1dutXNCGholPEJIvaVe3oSi7Itc2aaNCJ26vV3jNqxCAfmJf6sq7KzBC/VrpAgJoYRHCKmn8tJc3L+0gSvzBBYIjl0KvqDm1cmVV5KAgqozQkHPcDACfg1bEFI/lPAIIfWSeukHKOXlXNk78m1Y2tV8H45lWdWhCKYm4Ed3bqwQCQFACY8QUg9lxY+QeXMHV+ZbuMPZ+9lat2OTM8BmZldtFxUCxtK8UWIkpBIlPEJInd2/uAGsUsaVzd2Gg2Fq/1iRH692dscw4MeEa29MSAOhhEcIqZPSwgw8SPqDK1s5+cHEvvbLksrHeVDeSObKvBAheE72jREiISoo4RFC6iTl33VglVUrk3uGTtFpSIGi+pOZqBiKQEhT0DvhJScn49VXX0VoaCh69OiB+Ph4SKXSWrfLz8/HwoUL0adPH4SGhmLo0KHYtm1bnYImhBhWcX4KHt3dx5XtXUNh3y6y1u3Y4lIozl/nyoyXO3hebo0SIyFP02tqscLCQkycOBFeXl5YuXIlsrOzsXTpUpSVlWHhwoU1bjtr1iykpKRgzpw5aNeuHU6cOIFFixaBz+fjhRdeqNebIIQ0rZQLa1F9RhWfrtN1O7s7fRmQy7mygKYRI01Ir4S3fft2lJSUYNWqVbC3twcAKBQKfPTRR4iLi0Pbtm01bpeTk4Nz585hyZIlGDVqFAAgOjoa165dw969eynhEdKCiHOT8DjlMFd29IiCg1sYSktLa9yOlckh/7tqcDrjZA9ekG+jxUnI0/S6pHnixAlER0dzyQ4ABg0aBKVSiVOnTmndTv7fNzobGxuVemtra7Asq2kTQkgzlfzPdypln4g3dNpO8e9NoLgqKfJjIsDw6DEC0nT0OsNLSUnB888/r1Jna2sLZ2dnpKSkaN2uXbt26NmzJ9asWYOOHTvC1dUVJ06cwKlTp/DFF1/ULXJUDF6t7VtlTSQSicrfpAL1i3bG3jfinBvITT/JlR08esDExgelpaU19w3Lgjl2HpUXPVkLM0iDfSCtx+9vS2LsPzfaNGS/WFpa1tpGr4RXVFQEW1tbtXo7OzsUFhZq2KLKypUrMXv2bAwZMgQAwOfzsWDBAgwcOFCfEFTIZDLcunWrzttXSk1Nrfc+WiPqF+2MtW/ESd+olOW2/dR+BzX1jXVWLjo8fsKVc71d8Tj5XqPE2JwZ689NbRqiX8LDax/L2STr4bEsi/nz5yM1NRXLly+Hs7MzTp8+jc8++wx2dnZcEtSXiYkJfH3rfg9AIpEgNTUVXl5esLCwqPN+WhvqF+2MuW8KH13CDXFVcnPq0A+i8Ge4ck19w5zZxf2b5fPgNKQvnGytGz3m5sKYf25q0tT9olfCs7W1hVgsVqsvLCyEnZ2d1u2OHTuGAwcOYPfu3RCJRACAqKgo5OXlYenSpXVOeAzD6HQaWxsLC4sG2U9rQ/2inbH1DcuyuHGtaoJoMDwIo97U2AdP940yKxvSlEyuzA8LgKmrS6PG21wZ28+NrpqqX/S6Y+zt7a12r04sFiMnJwfe3t5at7t37x74fD6EQqFKvb+/Px4/fkzXtQlp5vIyzqDw0RWu3K7TIFg5dNRpW/nxCyplQe+IBo2NEF3plfBiYmJw+vRpFBUVcXUHDhwAj8dDjx49tG7n7u4OhUKBpKQklfobN27AycmJTvEJacZYlkXyP6u5MsPjo2P4VN22LRBDebHqMihP6AWem3Ge3RHD0yvhjR07FlZWVpg+fTr+/vtv7NixA/Hx8Rg7dqzKGLyJEydiwIABXDkmJgZubm5466238Mcff+DMmTNYtmwZdu7ciXHjxjXcuyGENLic1GMQ51YlLTfRCFjaeui0rfzvi4BSyZX5dHZHDEive3h2dnbYvHkzFi9ejOnTp8PKygqjR4/G7NmzVdoplUooFFVz7FlbW2PTpk346quv8MUXX0AsFsPDwwPz5s2jhEdIM8aySiRfqBp3x+ObomPYZN22LZdCceYyV2Zc24Dnp9tlUEIag95Pafr4+GDTpk01ttmyZYtaXYcOHfD111/rezhCiAFlJx9EyZOqlQ3c/Z+HubXmGZWepjh3DZBULQzL7x2h0/RjhDQWmuaAEKKRUin/b87MCjyBOby6TNJpW1aphOJEtYdVbKzADw9o4AgJ0Q8lPEKIRo/u7ENpYTpXbh/0Isws2+i0rfLaXbBPqiajEPTsAkbQJMN+CdGKEh4hRI1SIUPKv99zZb6pFbw6T9R5e/mxaiuamwjA796lIcMjpE4o4RFC1GTd3omy4odcuUPwOJiYa59cQkX6Q7BpD7giv2sQGCsaekQMjxIeIUSFQl6G+xerZlUxMbODZ/BLOm/PnLpcrUBDEUjzQQmPEKIi8+bvkJbmcuUOoRMgMLOpYYsqJmIJcLNqNiZeoC94zo4NHiMhdUEJjxDCkctKkXrpB65sauGE9oEv6ry9U1I6mGprXNKK5qQ5oYRHCOFkXNsGWVkBV/bq8ir4Jjref5OUwT656r4f094VTEfdZmQhpClQwiOEAABk5UVIu/IjVzazagt3/1G67+D8DfDlVTMsCfp0pYHmpFmhhEcIAQCkX/0JcmkxV+4YNgV8gZlO27JyBZizV6sqHGzBCxE1dIiE1AslPEIIpJJ8pF/bxpUtbN3hJhqm8/bKS7fAiEu4siAmHAyfPl5I80I/kYQQpF3eDIWslCt7h8eBxzfRaVtlXgFkice5MmtmCn5USIPHSEh9UcIjxMiVl+Qg48avXNnS3guuvs/qtC1bKIbsu1+Aamd36BoIxly3S6GENCVKeIQYufuXNkKpqFrVwCdiGhgev9bt2BIJpGt/U5kzU+JoA7YvDUUgzRMlPEKMmET8EFm3EriytZMQLt79a92OLZdCun4H2EdVA9TZNvZI6xsKmJk2RqiE1BslPEKM2P2L68Aq5VzZp+sbYJiaPxZYuRyyH3apzJcJexuwk4ZDYU7JjjRflPAIMVKlhel4mJTIlW1dgtDGs1eN27BKJWRb90J5J7Wq0toSptNeAOx1m36MEEOhhEeIkUq5sBYsWzVQ3KfrmzUOFGdZFvLfD0J5Jamq0swUplNHg+fi1JihEtIgKOERYoSKn9zDo3t/cmX7duFwdI+scRv53hNQVB9cLhDAdPIo8DxcGytMQhoUJTxCjFDyhbUAqiZ59u36Ro1nd/K/zkHx17mqCh4Dk4nPgefr2YhREtKwKOERYmSKcm4h5/5fXNmpfXfYt9O+Irn8zBXIqw0sBwCTlwaDH+jbaDES0hgo4RFiZJL/+U6l7NP1Da1tFZdvQ/77nyp1gpH9wQ8PbJTYCGlMlPAIMSIFjy4jL+MUV3b26gNb5wCNbRVJ9yHbmlj9yicEA3tA0Cu8scMkpFFQwiPEiKie3THwiZimsZ0yNQuyH3YBCiVXx+8VDv4z3Rs3QEIaESU8QozEk6zzyH9wgSu39X0G1k6d1NopH+RAum4HIJVxdbyIQAiG96P17UiLRgmPECPAsiySz6+uqmB48A6PU2unzCuAdO2vgKSMq+MF+sLkxWfB8CjZkZaNEh4hRiAv/W8UPr7GldsJh8LKvoNKG7aoGLI1v6qsfMD4tIfJhOfA8GufTJqQ5o4SHiGtHMsqkXyh6t4dwxPAO/x11TYlEkjX/Ao2r6CqnUdbmE4eBcZE0FShEtKoKOER0so9vn8U4tyq6cDc/UbAwsaNK7PlUkg3qK58wLg4wnTqGFrXjrQqlPAIacVYpQIp1Z7M5PHN0DFsStXrcjlkm3aBTVVd+cA07gUw1pZNGSohjY4SHiGt2KN7f6Kk4D5X9ggcDTMrZwDVVj5ISq3awMoCptNeAONg28SREtL4KOER0kopFTKk/LuWK/MFFvAKnQSghpUP4sbQygek1aKER0gr9fBOIiRFmVy5ffBLMLVwBEArHxDjRAmPkFZIqZAi5eI6riwwtUaHzuMB0MoHxHhRwiOkFcq8lYDy4myu7Nl5PEzMbCE/q2Hlg7G08gExDpTwCGllFDIJUi9u5Mom5nbwDHoJiitJkP92UKWtYGR/8CNo5QNiHCjhEdLKZNz4DVJJHlf2Cp0E5n4OZD/tAdiqpQ9o5QNibCjhEdKKyKXFSLuyiSubWjrBzbonZD/spJUPiNGjhEdIK5J+7WfIygq5spfPi1BsTFRd+SA8gFY+IEaJEh4hrYSsrBBpV3/iymaWLmhzsOSplQ98YDJ2EK18QIwSJTxCWom0K1ugkFatdOCZ7Q9eUVWyY7w9YDKeVj4gxosSHiGtgFTyBOnXt3Flc4UdnB+4cOWKlQ+eB2NqYojwCGkWKOER0grcv/QDlPKqsznPbH/w/vv15lY+sKCVD4hxo4RHSAtXVpyNrJu/c2XLcls4i9tXFGjlA0I4lPAIaeHuX9oApULKlT1zg8GAV7HyQRytfEBIJUp4hLRgkqIsPLi1iytbldnDqdi9YuWDqWPAa0srHxBSSe+El5ycjFdffRWhoaHo0aMH4uPjIZVKa98QQHZ2Nt577z1069YNISEhGDRoEHbv3q130ISQCin/rgPLKrhyh9xgMJUrH7SnlQ8IqU6gT+PCwkJMnDgRXl5eWLlyJbKzs7F06VKUlZVh4cKFNW77+PFjvPjii+jYsSMWL14Ma2tr3L17V+dkSQhRVZJ/Hw/vJHJlG4kTHCRuMJlEKx8QooleCW/79u0oKSnBqlWrYG9vDwBQKBT46KOPEBcXh7Zt22rddtmyZXB1dcX69evB/28cUHR0dN0jJ8TI3TsYD6BqbswOOcEwHTsE/KBOhguKkGZMr0uaJ06cQHR0NJfsAGDQoEFQKpU4deqU1u2Ki4uxf/9+vPzyy1yyI4TUXc7x35BTcJ4r25W4oM3Al2nlA0JqoFfCS0lJgbe3t0qdra0tnJ2dkZKSonW7GzduQCaTQSAQYNy4cQgMDESPHj2wbNkyyGQyrdsRQtSVXL2AGze+Uqnr6P0yBDG08gEhNdHrkmZRURFsbdUfcbazs0NhYaGGLSrk5uYCABYsWIAXXngBM2bMwNWrV7FixQrweDzMnTtXz7ArsCyL0tLSOm0LABKJROVvUoH6RTtD940yLQM3jn4AuXk5V+dqFgXLAaPq9bvQEAzdN80Z9Y1mDdkvlpa1jzXVK+HVlVJZsSxJ9+7dMW/ePABAt27dUFJSgo0bN2L69OkwNzfXe78ymQy3bt2qd3ypqan13kdrRP2inSH6xqygGPh3LcR2uVydhbItygLG49bt200ejzb0c6Md9Y1mDdEv4eG1X+HQK+HZ2tpCLBar1RcWFsLOzq7G7YCKJFdddHQ01qxZg7S0NIhEIn1CAQCYmJjA19dX7+0qSSQSpKamwsvLCxYWFnXeT2tD/aKdwfrmSRHyDi5DkmMSVyWAOfxHfgNzW/emi6MG9HOjHfWNZk3dL3olPG9vb7V7dWKxGDk5OWr39qqrLSmVl5fX+Lo2DMPodBpbGwsLiwbZT2tD/aJdU/YNW1SMgp8245793yr1gQM+g6Nr83sik35utKO+0ayp+kWvh1ZiYmJw+vRpFBUVcXUHDhwAj8dDjx49tG7n7u4OoVCI06dPq9SfPn0a5ubm9TpLI6Q1YyVlkKz9GbcsD0DBk3P1XsGT4Ozd24CREdLy6JXwxo4dCysrK0yfPh1///03duzYgfj4eIwdO1ZlDN7EiRMxYMAAlW1nz56Nv/76C59++ilOnTqFNWvWYOPGjZg0aRJ94yFEA7ZcivJ1v+MuewClZlVfMh3ahsOn25sGjIyQlkmvS5p2dnbYvHkzFi9ejOnTp8PKygqjR4/G7NmzVdoplUooFAqVun79+uHLL7/E6tWrsW3bNri4uGDmzJmYOnVq/d8FIa0MK1dAtvkPPMw/gRzXNK7ezKINggcuBcOj8ayE6EvvpzR9fHywadOmGtts2bJFY/3gwYMxePBgfQ9JiFFhlUrIft6Lovv/IsXzElfPMHwEP/M5TC0cDRgdIS0XrZZASDPCsizkCYdRfvUKbrmdBstTcq/5dpsFe9dQwwVHSAtHCY+QZkS+/yTkpy/hTrvzKDct4epdOvaHZ/DLBoyMkJaPEh4hzYT82HkoDp9FpuMt5Fs/4Oot7TwR0GchGIYxYHSEtHyU8AhpBuTnr0G++xgKLLKR1uY6V88TmCF4QDwEptYGjI6Q1oESHiEGprh6B/JfDqCcL0GS2xmAqVryx6/nfNg4Nb/B5YS0RJTwCDEgxZ00yLbsgZJVIMntNGSCqlmH3PxGwE00zIDREdK6UMIjxECUaQ8h25gAKBRIc76KIsuqSaFt2ogg6vGuAaMjpPWhhEeIASgf5UK67jdAKkOudSayqk8KbWqN4AHx4AvMDBghIa0PJTxCmpjySSGka34FSssgMRHjrut5ldcD+34MS1sPA0VHSOtFCY+QJsSKSyBb8wtQVAwFI8dtt9NQ8GXc6x06T4SzF00KTUhjoIRHSBNhJWWQrv0NbG4BACDF5SJKzAu41+3bhcEnkiaFJqSxUMIjpAmwUhmk6xPAPngMAMi2TUG2/X3udVMLJwT3/ww8nt7T2xJCdEQJj5BGxsoVkG36A+z9TABAsVk+kl0vVjVgeAiOXQIzK2cDRUiIcaCER0gjYpUsZNv2QXk7BQAg50lx2/0MlEzV8lm+kdPh4BZuqBAJMRqU8AhpJCzLQr7zMJSXblWUweKu2wWUmYi5Nm069EaHzhMMFSIhRoUSHiGNRH7gbyhOVa1nl+V0F3lWGVzZwsYdgX0XgWHo15CQpkC/aYQ0Avnxf6A4dIYrF1rkIq3NFa7M45sieMDnMDGzNUR4hBglSniENDDFP9ch/+MoV5byy5Dk/S9YVC3mKurxf7B19jdEeIQYLUp4hDQgxbW7kP2ynyuzUOJOyG1I5QVcXTvhELj5jTRAdIQYN0p4hDQQxd00yH7cDSirlvfJiChAQWnVPJnWjr7w6zmfFnMlxAAo4RHSAJTpVSsfVCqIMEe6+BBX5ptYVUwKbWJhiBAJMXqU8AipJ2V2HqTrfgfKq+bElHZ2xW3pTpV2AX0Wwsq+Q1OHRwj5DyU8QuqBfVII6ZpfgBJJVaXIE7esD0JeXsRVtQ9+GW29Yw0QISGkEiU8QuqIFZdAuvZXoLCYq2M6uuO+XzLEube4Oru2ndEp6i1DhEgIqYYSHiF1UVYO6fe/gc3J56oYNxc86WeNrNsJXJ2JuT2CY5eAxzcxRJSEkGpoanZC9MTIFWC27AWb9biqro09pC9G4NbBuOotEdT/M5hbt236IAkhaijhEaIPhQLtT14D8yCvqs7WGszkYbh2bDqU8jKu2jsiDk4eUQYIkhCiCV3SJERHbLkUzI4jsKme7CzNYRI3BklXv0FpQRpX7dS+OzqGTTZAlIQQbegMj5BaKLMeQ3HmMhT/3gRTLq16wdQEpq+PQWbeEWSnVI23M7Nui8B+i2lSaEKaGUp4hGjASmVQXL4NxZkrYNMeqL/O58H0tZEQm+fi7sGvuHqGJ0DIgHiYmts3YbSEEF1QwiOkGuWjXCjOXIHiwnVAUq6xjdzMBLwXBkLR3g5XE94Eq5Rzrwmj58LOJaipwiWE6IESHjF6rEwO5dUkyM9cAZuSqbUd4+0BRbg/7vBlEHVqj+t/zUN5cTb3elufgfAIHNMUIRNC6oASHjFaypwnFWdz/1xXnSmlOgsz8COCwI/uDJ5rG5SWloK9dQuZ137Ek8yzXDMr+47w772AJoUmpBmjhEeMCitXQHn9LhRnrkB5N01rO6aDGwTdQ8HrLAJjqjpoXFZ4Axl3f+DKfIEFgp+Jh8DEstHiJoTUHyU8YhSUeQVQnL0KxflrgLhEcyMzU/DDA8CPDgXP3UVjk/KSbJTcXw+gagkg/5gPYO3g3QhRE0IaEiU80mqxCiWUN5OhOHMZyqT71XOUCsajLfjRoeCH+YMxM9W6P6VChqQTH4KVVyVMj4AxcO00qKFDJ4Q0Akp4pNVh84sgP3cVinNXVSZ2VmFqAn4Xf/C7dwavfbva96lU4MbRD1Gce4Ors3UOhLD7nIYKmxDSyCjhkVaBVSqhvH2/4t7czWSA1Xw6x7RzBr97KPhhAWAszHTctwI3jn2E7OQ/uTqBqS2CB3wOHl/7GSEhpHmhhEdaNLaoGIpz1yA/ewXIL9LcSCAAr4sfBNGdwXRw0+tJSpZV4tbJT/Ho7t6qSkYAUczHsLCp/cyQENJ8UMIjLQ6rZKG8m1Zxb+76PUCp1NiOcXGsOJsLDwRjZaH/cVgWSX9/jge3/6jaJ88EVj7TYNcuvM7xE0IMgxIeaTHY4lIozl+rmO4rr0BzIz4fvBAhBN1DwXh71HlcHMuyuHN6OTJv/s7VMTw+RDEfI7vYqU77JIQYFiU80qyxLAs2OQPyM1egvHoHUCg0tmPa2IPfrTP4kcFgrOs3Ho5lWdw7+w0yrm+r2j/DR1D/JbBxjUb2rVs1bE0Iaa4o4ZFmiWVZKG+lQP7nKbAZjzQ34vHAC+5UMQuKbwcwvIaZ5ST5n++QdnVLVQXDQ2C/j9HWuz9KS0sb5BiEkKZHCY80KyzLQnn7fkWiS3+ouZGDLQTR/53N2Vo36PFT/l2H1EsbqtUwCOjzIVx9n23Q4xBCmh4lPNIs1JroGAa8QJ+KWVBEXmB4Db/WXOqlH5ByYY1KnX/vBXATDm3wYxFCmh4lPGJQtSY6Pg/8qBAI+kWBcbRrtDjSrv6Ee+dXqdT59ZwHd78RjXZMQkjT0vtrcnJyMl599VWEhoaiR48eiI+Ph1QqrX3DajZt2gSRSIS4uDh9D09aCZZlobh9H9IVWyFb97t6suPzwI/uDLP5r8Nk9DONmuwyrv+Cu2e+UqkTdp9LS/0Q0srodYZXWFiIiRMnwsvLCytXrkR2djaWLl2KsrIyLFy4UKd95OTk4Ntvv4WTEz3abYxYloUyKbXijE7DSuLg88CPDIagf7dGTXKVMm8mIOlUvEqdb9QseAa/3OjHJoQ0Lb0S3vbt21FSUoJVq1bB3t4eAKBQKPDRRx8hLi4Obdu2rXUfy5YtQ79+/fDggYYPO9JqsSwL5Z3/El2qhv973n+JLrZpEh0APLi9G7dPfqpS59P1TXiFTmiS4xNCmpZelzRPnDiB6OhoLtkBwKBBg6BUKnHq1Klat79w4QIOHz6MuXPn6h0oaZlYloUiKRXSlT9DtvY39WTH44HfLQSm778OkxcGNlmye3h3H24e/1ilrmPY6+gYNrlJjk8IaXp6neGlpKTg+eefV6mztbWFs7MzUlJSatxWoVBg8eLFmDZtGlxcNK81RlqPijO6tP/O6LLUG/B44EcGgR8bDV4TJblK2cmHcOPoh6i+XlCH0InwjqB7yoS0ZnolvKKiItja2qrV29nZobCwsMZtf/75Z0gkEkyaNEmvAGvCsmy9BgJLJBKVv0mFevULywLJmWD+Og9Gw1OXLI8HdPED2zsCSkdbyACgCQdz56WfQNKJhQBbNf9mO/8X4BY0Waf3Sz8z2lHfaEd9o1lD9oulZe0zLDXJsIS8vDysWLECn3/+OUxNG245FZlMhlsNMM1Tampq/YNphfTqF5aFVXY+nK+mwCpH/csPyzAo8G6HnEAvyGwsgOysij9NSFpwFSXJ3wFs1fRkZs59ILHsj9u3b+u1L/qZ0Y76RjvqG80aol/Cw2uf0F2vhGdrawuxWKxWX1hYCDs77ZelvvnmG4hEIkRERKCoqGIJF7lcDrlcjqKiIlhaWkIg0D/3mpiYwNfXV+/tKkkkEqSmpsLLywsWFvrPpt9a6dUvLAuk/HdGl6bpjI4BQv3A9omAnaMdmvbiZZX8B+dw++JalWTX1ncYvLu9A4bR/VY2/cxoR32jHfWNZk3dL3plGW9vb7V7dWKxGDk5OfD29ta63f379/HPP/+ga9euaq917doV69atQ0xMjD6hAAAYhtHpNLY2FhYWDbKf1qamfmFZFsp76RX36FIy1RvwGPAjgsAfEA2ek33jBlqLJ1nnkXTsA7BKGVfXTjgMAX0W6pXsqqOfGe2ob7SjvtGsqfpFr4QXExODNWvWqNzLO3DgAHg8Hnr06KF1u/fff587s6v02WefwdzcHHPmzIFIJKpD6MQQdE50sd3Aa+PQ9AE+Jf/hJVw+MBtKRTlX5+r7LAJ6/6/OyY4Q0jLplfDGjh2LLVu2YPr06YiLi0N2djbi4+MxduxYlTF4EydOxIMHD3Do0CEAgL+/v9q+bG1tYWlpiaioqHq+BdJUFHfTak504YEVZ3TNINEBQMGjq7i8/y0o5WVcnYt3LAL6fgSGxzdgZIQQQ9Ar4dnZ2WHz5s1YvHgxpk+fDisrK4wePRqzZ89WaadUKqHQsm4ZaXkUlWd0yRnqL1Ymutho8JybR6IDgMLHN3Bp/wwoZFVPgDp79UZQv0/A49EUsoQYI71/8318fLBp06Ya22zZsqXG13VtQwzsfhbKj13QnOgYBryIQAiaWaIDgKLc27i0dzoU0hKuro1nTwTHLgWPb2LAyAghhkRfdYkKVskCd9Phdfhf8LILqg3N/g/DgBceAMGAaPCcHQ0RYo2K8+7i0t43IZdWPU3s6NENwQPiweM33JAYQkjLQwmPAACUeQVQ/HMdin+ug5dfBKunGzTzRAcAxfkp+DfxDcjKqsYBOrhFoPMzX4AvMDNgZISQ5oASnhFjpTIor92B4vw1KO+ma25Umehio8FzaZ6JDgBKCtJwMXEaZGX5XJ29axeEPvs1+CY07okQQgnP6LAsCzb9ERTnr0Jx6TZQVq65HcMAIUKYDerVrBMdAJQWZuBi4jRIS/O4OjuXYIQO+oaSHSGEQwnPSLDiEij+vQnF+WtgH+Vqbce0dYKiix/uWDIQhoWC18wHyUrED3ExcRrKSx5zdbbOAQgdvBICU7ULs4QQI0YJrxVjFUoob6dUXLK8kQwolZobmpmC38Uf/KhgMJ7tIJFIoGiAOUobW1lxNi7uiUNZ8SOuztpJhC6DV8HEzMaAkRFCmiNKeK2QMjsPivPXoLhwAxCXaG3H8/UEPzIYvBAhGNOW9bh+eUkOLiZOg0RcNQG1laMPwoZ8CxNzQ83YSQhpzijhtRJsWTkUl29Dcf665vXnKtnbgN81qCLRGXiOy7oqL83Dv4nTUFpY9aCNpb0XwoZ8B1OL5jUmkBDSfFDCa8FYlgWbkgn5+WtQXkkCpDLNDfl88II7gR8VDF6nDmB4LXcOSakkHxf3voHSglSuztLOE+FD18DM0slwgRFCmj1KeC0QWyCG4sL1igdQcgu0tmM82oIfGQx+F38wVi3/aUVZWSEu7p2OkifJXJ2FjTvChq6BmZWzASMjhLQElPBaCFYuh/L6vYoHUJJSK9ah08TSvGJuy8gg8Nzbam7TAsnLxbi0bwaK85K4OnNrV4QNWwNz69bzPgkhjYcSXjOnzMqG4vx1KP69AZSWaW7EMOCJOlZcsgz0AVOHxXSbM7m0BJf2zURRzk2uzszKBWFD18DCxs2AkRFCWpLW9cnYSrAlEigu3oLi/FWwWY+1tmOc7MGPCgY/IgiMfet8DF8hk+Dy/lkofHyNqzO1dELY0DWwtGtvwMgIIS0NJbxmglUqobybBsW5a1BeuwtoW17J1AS8ziIIIoPBeHuAYZimDbSJyMqLkHnzd2Rc/wXS0qqB8ibmDggbugZW9h0MGB0hpCWihNcMKLPzINuYADYnX2sbxsu94gGUUBEY89Y7EXJpUSYyrv2MB7d3QyGXqLxmYm6H8KHfwdrB20DREUJaMkp4BsbKFZBt2qU52dlYgR8RWDFmrm3rfuS+MPsa0q5uweP7RwFWfUYYU0snhA5aAWunTgaIjhDSGlDCMzDFsX/AZldNegweD7wAn4oHUPw6guHzDRdcI2OVCuSkHkfa1Z9QmH1FYxtz63ZoH/wS3P2GQ2Bq3cQREkJaE0p4BqTMK4D80OmqCisLmM2d1GofQKmkkEnwIGk30q/9DElRpsY2ts6B8AwZBxfvfuDx6MeUEFJ/9EliICzLQr7zCCCTc3WCYX1adbIrL8lBxo1fkXnzd8jLizS0YNCmQww6hIyDfbsurfaBHEKIYVDCawLKlEwoLt0CL1gIvrDi6ULl9XtQ3qyaMYTp6AF+RJChQmxUxU/uIe3qVjy6ux+sUn36Mx7fDO1EQ+EZ/Ao9fUkIaTSU8BoZWyKBdN3vQLkUivPXwJs3BbA0h2zn4apGPAYmoweA4bWeMxqWZfEk6xzSr/yEvMwzGtuYWjjCI/AFeASMpkmfCSGNjhJeI1PeSQXKpRUFmRzyvy9W/LtAzLXhx0SA1651zAWpVMjwKPlPpF/5CcVP7mpsY2XfEZ4hr8C102DwBa13iAUhpHmhhNfI2BLVsWTKq3fA5le7f2VvA8HAHk0cVcOTlRch6+YOZFz/BeWlORrbOLhFoEPIODh59gDDtNwVGwghLRMlvEbGPilULecVqJRNRvQHY2bahBE1LElRFtKv/YwHt/9QGygOAAyPj7bez8Az5BXYOvsbIEJCCKlACa+ByP88BcXVO+BHd4agZxhX/3TCq44X4A1ecMscSF3bQHG+qRU8/EahffBYmFu7GiBCQghRRQmvASgzHkH+5ykAgHznYfCEHcBzqZgZRWvCMxFAMDK2RT16zyoVyEk7jrQrNQ0Ud0X74JdpoDghpNmhhFdHLMtCefEmFNfvQZmaVe0FQLp0A3iijmDatQGbma1xe8GAaPCc7Jsm2HqqGCi+B+nXttYwUDzgv4Hi/WmgOCGkWaJPpjpg5XLINiRULMSqhTLpPpB0X+NrjIsj+H0iGym6hiOV5OHB9U3Iuvk7ZOWaz1TbdOhNA8WrkcvlkEqlhg7DICQSicrfpAr1jWa19YuJiQkEAkGDfbZQwqsDxZFzNSa7GtnbwGTcMDCC5jtHpqQwHSX3N+Hfi/9oHyguHArPkJdhZe/V9AE2QyzLIj09Hbm5ubU3buVSU1MNHUKzRX2jWU39IhAI4O7uDicnp3onPkp4emJZtmL18TownT0BvPbN9wEOlmWRefM33Dn9pcZEZ2LugPZBL8AjYAwNFH9KZbJzd3eHtbU1eDwadkFIfbAsC5lMhvz8fKSlpaGkpAQdOtRvJiZKeHpiM7PB5hbUaVumjX2DxtKQ5NIS3DrxCbKTD6q9ZmnvhQ7cQHFzA0TXvMnlci7Zubo23y80hLRE9vb2MDc3x4MHD2BiYgI3N7c674u+hupJcelW7Y14DEwmjVCrZiyaZ7IQ593F+YTxasnO1qUzOj/7FaJf+A3u/qMo2WlRec/O2pqeSiWkMdja2gIADh06hMxMzQ/O6YLO8PSkvKZ5uqxKglGx4Ik6gufsAGXPMCj+m0qMJ+rYFOHphWVZPEjajaS/P4dSUc7VMzwBzN2fR2Dv6bCysjJghC0LXcYkpHFU3rsrKirClStX4OHhUaf9UMLTA1suVZkphd8rHIqT/6q04YcHgrGomB9SMCQGkMrAlkogGNK7KUOtlUImwe2/l+LhnUSVenNrV3TquQiZuTx66pIQ0qxYW1sjPT0dMpkMJiYmem9PCU8PT9+743l7qCW8ymQHAIyZKUzGDmqK0PRSkn8fVw+9h5L8ZJX6Np69ENj3I8iUJkCuDpduCSGkCfH5fCiVSigUCkp4jY3NzVcpM84O4IWKoLycBADg+TW/y5ZPe3h3H26f+Exl3kuG4cMncjo6dB4PhuFBVlpqwAgJIaRxUMLTA5vzVMJr4wDBsz0hy8kH5AoIBvUyUGS1U8jLcef0F8i6laBSb2bpjODYJbBv18VAkRFCSNOgu+x6UDnDs7MGY2oCnosTzOZOgum7rzXbMXalhRn4Z9erasnO0SMKUaN/pmRHWqx169bh2WefhVKpPoF5fWzbtg19+vRpMbPmzJs3DyKRCCKRCEOHDjV0OLXatGkTF69IJMKTJ0+a5LiU8PSgrHaGx7RRHXjdXB/wyE45jHM7XkFxXlK1WgbeEdPQZdBKmFo4Giw20jIkJCRwH0wXLlxQe51lWfTu3RsikQhxcXEatxOJRAgICECvXr0wb948ZGerzjGrT9tKxcXFWL9+PV5//fUGf0J21KhRkMlk2L59e4Pu9+LFi1i5ciWKiopqb1zN7du3MXfuXPTq1QtBQUHo0aMHXnrpJaxatYpr4+DggPj4eMydO1dl23Pnzqn0bfU/ly9fboi3pbdevXohPj4eAwYMaNLj0iVNPVQ/w+O1ad4zjSgVMtw9+zUyrqv+wppaOCKo36dw9Gj+c3mS5sXMzAyJiYmIiIhQqT9//jwePXoEU1PN6zq+9dZb8PDwgFQqxeXLl7Fz5078+++/SExMhJmZWZ3b/v7775DL5Y1yRmNmZoYRI0Zg06ZNGD9+fIN9ob106RJWrVqFkSNHcmPLanPw4EHMmTMHbm5uePHFF9G2bVs8ePAAZ86cwe7duzFjxgwAgKWlJYYPH651P+PHj0dwcLBKnaenZ93fTD34+PjAx8cH6enpOHToUJMdlxKejtiyckBcwpUZ5+ab8CTiB7h2eB6KHqtOgWbfLhzB/T+FmZWzgSIjLVnv3r1x4MABLFiwAAJB1UdHYmIiAgMDUVBQoHG7mJgY7oN2zJgxcHBwwLp163DkyBEMHjy4zm0TEhLQr18/tUTYUAYNGoT169fj7NmziI6ObpRj1KawsBDvv/8+goODsXnzZpUvFbNmzdJ69qtJREQEnn322cYIs8WgS5q1UFy4Ael3v0C26Q+V+qcvaTYXOakncG7HK2rJzqvLawgbupqSHamzIUOGoKCgAKdOneLqpFIp/vzzTwwbNkzn/VSeIWZkZNS5bUZGBpKSktC9e3eV+ldffVXrZbJRo0ZhzJgxOscZFBQEe3t7HDlypNa2WVlZWLRoEQYOHIiQkBBERUXhrbfeUpkVZOXKlYiPjwcA9O/fn7usWNPMIadPn4ZYLMbo0aM1nkG3bdtW5/cDVFwGlsvlem2jyblz5/D6668jIiICkZGRiIuLQ3p6er3329joDK8GypRMyH7eq/G15pbwlAoZkv9ZjbQrP6rUm5jZIbDfYrTx7GGgyEhr4e7ujtDQUOzduxe9e1dMpHDixAmIxWIMHjwYW7Zs0Wk/WVkV60fqcklPW9tLly4BAAICAlTqfX19ce7cOUilUpUEcfjwYdy4cQMbN27UKcZKAQEBuHjxYq3trl27hkuXLmHIkCFwdXVFVlYWtm3bhgkTJmDv3r2wsLDAgAEDkJqaisTERMyfPx8ODhWfIY6O2u+jVy6bk5SUpLWNrubPn4/S0lLw+XyEh4fj3XffVbvEqYuEhAR88MEH6N69O95++21IJBL89NNPmDRpEvbt2wdz8+Y7BSElPC1YhQKy39UnUgYA2FqBadt8HvYoK87GtSPzUfhIdRVyu7YhCI5dAnPr5vn0aGvHKpVgHzwGpPX/Rl1vpgIwbi5g6vlwx7Bhw7B8+XKUlZXB3Nwce/bsQdeuXWs80yguLsaTJ08glUpx5coVrFq1Cqampujbt2+d26akpACA2hRTnTp1gkKhQGpqKoRCIYCKh2pWrFiByMhI9Oih3xe/9u3b65Tw+vTpo3a5sG/fvnjxxRfx559/YsSIEfDz80NAQAASExMRGxur0/RYUVFRsLCwwObNm3H8+HHExsaiV69e6Nq1K/h83ZYYMzExwcCBAxETEwMHBwckJydjw4YNeOWVV7B9+3a1Lw01uXPnDhYuXIiZM2fizTff5Op79eqF4cOH48SJE3jmmWd03l9To4SnheL8NbCP1Nc2Y5zsYfLqSDA6/rA1tryMM7j+1wLIygpU6j1DxsE3cgZ4fP1nIyD1x8oVkK76GWz6Q0OHwmE828F0xsv1Wotx0KBB+Oyzz3D06FH06tULx44dw4IFC2rcZtKkSSpld3d3LFu2TOPKErq2LSgogEAgUJvr1dfXF0BFQqxMePv370dSUhK2bt2qy1tUYWtri7KyMkgkElhYWGhtV/2sRiaTobi4GJ6enrC1tcXNmzcxYsQIvY8NVLz/7du3Y82aNTh+/DjWr1+P9evXw83NDZ9++qnaJV1NwsLCEBYWxpX79++PgQMH4rnnnsPy5cuxYcMGneP59ttv4ebmhrFjx6oMJXBxcYGJiYlOl6kNiRKeFsp7qtej+T3DwNhag98jtFmsesAqFUj593vcv7gBAMvVC0ytEdBnEVw6qn97Jk2HfVLQrJIdALDpD8E+KQDj4lTnfTg6OiI6OhqJiYkoKyuDQqHAwIEDa9xm4cKF6NixI8RiMXbs2IF//vlH6xOd+rTVpFOnTgCqzgCVSiVWrVqFnj17qjxd+vPPP+O3337DnTt3MG3aNMycOVPj/li24nertqc0y8rKsHbtWiQkJCA7O5vbDgDEYrHO8Wvi5+eHr7/+GlKpFJcuXcKuXbuwc+dOzJ49G8eOHasxEWvToUMH9O/fHwcPHoRCodDpbFEqleL48eOQSCRaH+Kp/AKia/82NUp4WrD5VT+kPGEHmIyKNWA0qspLc3H9yAfIf6A6JsqmjT+CByyFpW3dZhInDYdxtAfj2a5ZJT3Gsx0YR/t672fo0KH43//+h9zcXMTExNR6Ly4kJIS7VxQbG4uXX34Zc+fOxYEDB9TO0HRta29vD7lcjuLiYpVlmWxsbODi4sIlvD179iA5ORmff/65ynFcXFwwY8YMJCaqTp7+tKKiIlhYWNR6X2rx4sVISEjAxIkTERoaChsbGzAMg9mzZ6skv/owNTVFVFQUoqKikJ+fj6NHj+L+/ft6XZKsztXVFTKZDBKJRKelrTIyMiCRSDBr1iyEhoZqbOPn5wdA9/5tanonvOTkZHzyySe4dOkSrKysMHz4cLz99ts1fgt7/PgxNm3ahFOnTiE9PR02Njbo2rUr5syZA3d393q9gcbCFlQNDGXsdRsv0xSeZP2D60c+gFSSp1LvEfgChNGzwePr/m2YNB5GwIfpW6+0unt4ADBgwAB8+OGHuHz5Mr766iu9tuXz+ZgzZw4mTJiArVu3YurUqXVq6+3tDQDIzMzkPmQrderUCSkpKVAoFFi9ejViY2PVHs6Ija34Anv8+PEa483MzOSOVZPK+3Tz5s3j6srLy9XO7hpqPF/l562NjU2d95GZmQkzMzNYWlrq1L6kpGJYlo+PT62XUnXt36amV8IrLCzExIkT4eXlhZUrVyI7OxtLly5FWVkZFi5cqHW7Gzdu4NChQ3j++efRuXNn5Ofn47vvvsOYMWOQmJhY41NKhsAqlEBhcVWFfd1/qBoKyyqReukHJF9YA7BV0yjxTSzhH/M/uPo23xvFxorh8cB4tL4HhqysrLBo0SJkZWWhX79+em8fFRWFkJAQbN68GRMnTqxxHJ22tl26VEyHd/36dbWE5+vri99++w07d+5Eeno6Vq5cqXeMlW7evKnTkAtNlwS3bNkChUKhUld5+VGXy5wXLlxAUFCQ2tnl7du3cfLkSQQEBKB9+/a17ufJkydqn7G3b9/GX3/9hV69euk8S427uzsYhsHBgwfVLmPL5XKUlJTAzs5Op30Zil4Jb/v27SgpKcGqVatgb28PAFAoFPjoo48QFxen9Umt8PBw7N+/X2WwalhYGPr06YNdu3bhtddeq/s7aAxFxUC1yxCMg2HP8KSSfNz463/IyzyjUm/t6IvgAfGwsu9goMiIsRo5cmS9tp88eTJmzZqFhIQEvPTSS3q3bd++PYRCIc6cOYPRo0ertO/UqRNKS0uxfPlyDB48mHt4RV/Xr19HQUEB+vfvX2vbPn364I8//oC1tTV8fX1x+fJlnD59mvucrBQYGAgA+OqrrzB48GCYmJigb9++Gs+yli9fjtTUVDz77LPw8/ODXC7H7du38ccff8DGxoYb01ebt99+G+bm5ujSpQucnJxw7949/PrrrzA3N8c777yj1l4kEiEyMlJtmImTkxOGDBmCxMREFBcXIyYmBgqFAunp6Th48CC+/PJLtVl4mhu9Et6JEycQHR2t8p84aNAgfPjhhzh16hRGjRqlcTtN1/hdXV3h6OiIx48f6xdxE6h+ORMwbMIreHQZ1w7PR3mJaj+5+Q2HqMe74AsM/wANIfp65pln4OnpiY0bN+KFF17Qq23l2dTzzz+Pb775hhsiUanySc3CwsJ6PSxx4MABuLm5oVu3brW2/eCDD8Dj8bBnzx6Ul5cjLCwMP/zwA6ZMmaLSLiQkBLNmzcL27dtx8uRJKJVKHDlyRGPCe+2113DgwAGcOnUKu3btgkKhgIeHB8aNG4cpU6bofGUsNjYWe/bswaZNm1BcXAwHBwcMGDAAM2bMQIcOql+WKy9bOjtrnqBiyZIlEAqF2L17N+Lj42Fubo727dtjzJgxXDJvzvRKeCkpKXj++edV6mxtbeHs7MzdJNbV/fv3kZeXBx8fH722q45lWZTWY+22ykGdlX9zHuWqTEFTbm4CNPEacSzL4sHN7Ui7tBZgqy6L8Pjm8I6aCxefZ1EuVQLSho9La78QjX3T2vtp1KhRWr/MVvfXX3/pvB2Px1OZQ1GftpWef/55fPfdd9izZ4/KDCpdunSp90BtqVSKXbt24fXXX9fpvputrS2WLFmiVv90nwDAm2++qTKGTZsBAwboNbmyUqnEkydPIBAIVE4yJkyYgAkTJui0jwsXLoBhGJVJwKszNTVFXFyc1td1VV5ejpKSEr1/dxQKBeRyOUpLS9VWyNDlXqReCa+oqEjj2ZqdnR0KCwt13g/Lsvjkk0/g4uKCIUOG6BOCCplMhlu36r8yd2pqqkq5zd1UVL84e/thFticR/U+jq6U8hKUpm6CrEB1IDnPvB2sfeKQJ3VDXgO879o83S+kCvWN4dnY2GDy5MnYsGEDnn/+eb1WTJDL5VAoFFAqlZDL5SgvL4dAIODOHnfs2AGBQFDr5dbm5OHDh4iOjkanTp3q/HTk2bNnMWTIEIhEonrFUlv/btu2TeMXhNoUFRUhPz8fSUlJag9KhoeH17q9QYYlrFy5EmfPnsX69et1fkJIExMTE+7yRV1IJBKkpqbCy8tLZSwLc6/q8iFraQ6/4KA6HwMA8tJPIOf+QbTx7IM2HWse3iDOvYU7J+IhK1F9nN254zPwjpoLvknd+0tX2vqFaO6byjrS9KZOnVrjk57afPfddypL66xZswZLlizhzjJfeumlFpXspkyZgueeew6Abmc62rz33nsNEk9t/Ttw4ECVe6u6Pm1aecIlEonqNIWZXgnP1tZW49NFhYWFOj+d8+uvv+Lbb7/Fp59+Wu8ZyBmGqdd/biULCwuV/UiLS1F5ssxztINZPY5RVpyNu39/BKVCivzMv9HGowss7dSfrGJZFpk3fsWdM1+CVVY9xs7jm0LU4124+Y1o8jX3nu4XUoX6pmWbOXNmsxkM3RB8fX3r9eW/odXWv+3atUO7du303i+fz4dAIIClpWXjJzxvb2+1e3VisRg5OTk6jVU5dOgQFi1ahLfeekvtyarmpPqg86fH4EnED5FxfTss7TzBE5gh/erPcPKIgm/UWxoTUnbKISgVFasms0oFHt7dB58I1evf8nIxbp74BI9TDqvUW9i2R8iAz2HTpn6XFwghhOiZ8GJiYrBmzRqVe3kHDhwAj8erdVLWc+fOYc6cORgzZgymT59e94gbGcuyYPOrDzpXPdW+8df/UPDokkpdcV4S7F1D4ezVW21/kkLVueXKi1XXr8p/cBE3jv4PZcWq9whdvGMR0Pt/EJjWPgMCIYSQ2umV8MaOHYstW7Zg+vTpiIuLQ3Z2NuLj4zF27FiVMXgTJ07EgwcPuCerkpOTMX36dHh5eWH48OEqy8o7OjoabNVdTZRJqYCkjCszTlWXauWyUrVkVynrVoJKwit4dBWplzchN011pgFx3p2K4yikSP5nzX/L+VQb88cTQBg9Bx6BLzT5JUxCCGnN9Ep4dnZ22Lx5MxYvXozp06fDysoKo0ePxuzZs1XaKZVKlRkGrly5ArFYDLFYrHYjeOTIkVi6dGk93kLDYVkW8gN/V1XweOAFdeKKpQVpWrctyrkFllWCYXiQSvJxad8MKGQlau2Kn9xDUe5t3Dz2EYr/S36VLGzdEdT/M9i51O8hGUIIIer0fkrTx8cHmzZtqrHN0yP0dR3HY2jKe+kqk/3yuwaC52TPlUvy72vdVirJgzg3CbbO/ki/ulVjsgMAVinD+YTxKtODAYCb3wgIu8+FoAmewiSEEGNEqyVUw6ZkVhUYoCzSDalnV6AkPxnOXr0hEdc88/3N4x8jdOCXyLjxSy0Hqkp2Jub28I9ZQMv5EEJII6OEV40yp2pBw8K2Jbh+eCo3RCA3/W9tm3GK8+7g75+H6nw8J88eCOi9EGaWbfQPlhBCiF4o4VXDPq5KeI/t0lTGwz3NzMoFnbq9jZL85P8WYdUdT2AGYfQcuPs/Tw+mEEJIE6GE9x+WZcHm5HPlMpMSQKa9fTvhULj6DgTLKmFm5YI7Z76EUl6u0iao/6ewsu8IWXkRzK1dce/8SvAF5vDq8hqs7L0a6Z0QQgjRhBJeJXEJUC7limWoeW5QK/uOAACG4cEjYDSs7Dvi3z1xqBxiYO0kRFufZ8AwVfP7hQzQbTkPQgghDa/+yx+3EtXP7lgoIZVVlV07DVZrb+XQUaXs4BYO36i3ADAQmFrDv9f7KsmOEEKIYdEZ3n+qP7BSLpCARdWTlI7uXdHGsyeuH3kfAGBq6QRrR/VljbxCJ6Bdp0HgC8whMDP8KumEEEKq0CnIf6o/sFJuXqbymrl1O7j6DkTIwOVoH/wyugz+Fjy+6dO7AACYWTlTsiOkiaxbtw7PPvus2tpo9bVt2zb06dMHUqm09sbNwLx58yASiSASiTB0qO5PihvKpk2buHhFIhGePHlS+0YNgBLef6pf0ix3ZFVes7BxAwC4ePWBqPtc2Dh1AiHGIiEhgftgunDhgtrrLMuid+/eEIlEKguDVt9OJBIhICAAvXr1wrx585CdrTqnrD5tKxUXF2P9+vV4/fXX9VoLTxejRo2CTCbD9u3bG3S/Fy9exMqVK1FUVFR742pu376NuXPnolevXggKCkKPHj3w0ksvqSzB4+DggPj4eMydO1dl23Pnzqn0bfU/1ad5bEq9evVCfHy8XgvcNgS6pPkf9lEuAOCJ1QPcsag25o7hwczKxUBREdJ8mJmZITExERERESr158+fx6NHj9QW5Kz01ltvwcPDA1KpFJcvX8bOnTvx77//IjExEWZmZnVu+/vvv0MulzfKGY2ZmRlGjBiBTZs2Yfz48Q02fOjSpUtYtWoVRo4cqXExbU0OHjyIOXPmwM3NDS+++CLatm2LBw8e4MyZM9i9ezdmzJgBoGIdvOHDh2vdz/jx4xEcHKxSZ6h5jH18fODj44P09HSNq9k3Fkp4AFAgBptXgCLzXNz0OKnykrmVC3h8EwMFRkjz0bt3bxw4cAALFiyAQFD10ZGYmIjAwEAUFBRo3C4mJob7oB0zZgwcHBywbt06HDlyBIMHD65z24SEBPTr108tETaUQYMGYf369Th79my91+6sq8LCQrz//vsIDg7G5s2bVb5UzJo1S+vZryYRERF49tlnGyPMFoMuaQJAcsUSPnk2mWovmVvrv0ghIa3RkCFDUFBQgFOnTnF1UqkUf/75J4YNG6bzfirPEDMyMmppqb1tRkYGkpKS0L17d5X6V199VetlslGjRmHMmDE6xxkUFAR7e3scOXKk1rZZWVlYtGgRBg4ciJCQEERFReGtt95CZmbVZ8rKlSsRH18xNKl///7cZcXqbZ52+vRpiMVijB49WuMZdPVVanRRXFwMuVz7hBq6OnfuHF5//XVEREQgMjIScXFxSE9Pr/d+Gxud4QFgUrIAAGJz9RunJua6XXYg5GmsUgFx3h0o5WW1N25kPIE5bJyEYHj8Ou/D3d0doaGh2Lt3L3r3rlgK68SJExCLxRg8eLDapPHaZGVV/L7pcklPW9tLlyqW6QoICFCp9/X1xblz5yCVSlUSxOHDh3Hjxg1s3LhRpxgrBQQE4OLFi7W2u3btGi5duoQhQ4bA1dUVWVlZ2LZtGyZMmIC9e/fCwsICAwYMQGpqKhITEzF//nw4ODgAqFgiTRuJRAIASEpK0ituTebPn4/S0lLw+XyEh4fj3XffVbvEqYuEhAR88MEH6N69O95++21IJBL89NNPmDRpEvbt21enlcibCiU8lgVSKr49lpkUq71sZV/7Su6EPE2pkOHC7skoenzD0KFwbF0CEfHchnpdoh82bBiWL1+OsrIymJubY8+ePejatWuNZxrFxcV48uQJpFIprly5glWrVsHU1BR9+6pPmK5r25SUFACAh4eHSn2nTp2gUCiQmpoKoVAIoOKhmhUrViAyMrLWhaqf1r59e50SXp8+fdQuF/bt2xcvvvgi/vzzT4wYMQJ+fn4ICAhAYmIiYmNj1WLXJCoqChYWFti8eTOOHz+O2NhY9OrVC127dgWfr9uXFxMTEwwcOBAxMTFwcHBAcnIyNmzYgFdeeQXbt29X+9JQkzt37mDhwoWYOXMm3nzzTa6+V69eGD58OE6cOIFnnnlG5/01NaNPeKbiUjDiUsh45ZCaSNReb+Op3y8IIQAgEWc1q2QHAEWPb0AizqrXtHaDBg3CZ599hqNHj6JXr144duwYFixYUOM2kyZNUim7u7tj2bJlcHV1rXPbgoICCAQCWFlZqdT7+voCqEiIlQlv//79SEpKwtatW3V5iypsbW1RVlYGiUQCCwsLre2qn9XIZDIUFxfD09MTtra2uHnzJkaMGKH3sYGK9799+3asWbMGx48fx/r167F+/Xq4ubnh008/Vbukq0lYWBjCwsK4cv/+/TFw4EA899xzWL58OTZs0H0u4G+//RZubm4YO3asylACFxcXmJiY6HSZ2pAo4YkrklyJmepUYvauXdAhdALs23UxRFikhbOwcYetS2CzSnq2LoGwsHGv1z4cHR0RHR2NxMRElJWVQaFQYODAgTVus3DhQnTs2BFisRg7duzAP//8o/WJTn3aatKpU8WQocozQKVSiVWrVqFnz57c/UCpVIoPP/wQZ86cQVFREXx9fTF//nx06aL+u86yFUOUantKs6ysDGvXrkVCQgKys7O57QBALBbrHL8mfn5++PrrryGVSnHp0iXs2rULO3fuxOzZs3Hs2LEaE7E2HTp0QP/+/XHw4EEoFAqdzhalUimOHz8OiUSi9SEeKysrvfq3qRl9wuOXV8wQXWJWoFIfHLsEZlbOBoiItAY8vgm6Dv+hVd3DqzR06FD873//Q25uLmJiYmq9FxcSEsLdK4qNjcXLL7+MuXPn4sCBA2pnaLq2tbe3h1wuR3FxMaytrbl6GxsbuLi4cAlvz549SE5Oxueff861kcvlcHd3x88//wxXV1fs378f06ZNw19//aUWT1FRESwsLGq9L7V48WIkJCRg4sSJCA0NhY2NDRiGwezZs1WSX32YmpoiKioKUVFRyM/Px9GjR3H//n29LklW5+rqCplMBolEotKH2mRkZEAikWDWrFkIDQ3V2MbPz0+v/m1qlPCkFQmvtFrCMzG3hymtUUfqieHxYevsb+gwGtyAAQPw4Ycf4vLly/jqq6/02pbP52POnDmYMGECtm7diqlTp9aprbd3xb31zMxM+Pn5qWzXqVMnpKSkQKFQYPXq1YiNjVV5OMPS0pIbuwZUPH26ZMkS3L9/H0FBQSr7yszM5I5Vk8r7dPPmzePqysvL1c7uGmo8X+VZr41N3Wd1yszMhJmZGSwtLXVqX1JSAqBiDF1tl1J17d+mZvTDEvhSOcr5EjyxrlrN3NqxE61TR4gWVlZWWLRoEWbOnIl+/frpvX1UVBRCQkKwefNmlJeX16lt5eWx69evq23j6+uL+/fvY+fOnUhPT8esWbNqPEZqaioKCwvRoUMHtddu3rypcv9LG02XBLds2QKFQqFSV3n5UZfLnBcuXEBZmfrVgdu3b+PkyZMICAhA+/bta92Ppmm7bt++jb/++gs9evTQeZYad3d3MAyDgwcPqr0ml8tRWKh5hZma+repGf0ZHq9cilvuf0MmqPrBcnTvasCICGn+Ro4cWa/tJ0+ejFmzZiEhIQEvvfSS3m3bt28PoVCIM2fOYPTo0SrtO3XqhNLSUixfvhyDBw/mHl7RpKysDP/3f/+HuLg4tbOl69evo6CgAP3796/1/fTp0wd//PEHrK2t4evri8uXL+P06dOwt7dXaRcYGAgA+OqrrzB48GCYmJigb9++Gs+yli9fjtTUVDz77LPcpcLbt2/jjz/+gI2NDTemrzZvv/02zM3N0aVLFzg5OeHevXv49ddfYW5ujnfeeUetvUgkQmRkpNowEycnJwwZMgSJiYkoLi5GTEwMFAoF0tPTcfDgQXz55Zdqs/DU1L+GYPQJTyrLQLFF1Tcga8dOaB9c8y8gIaR+nnnmGXh6emLjxo144YUX9GpbeTb1/PPP45tvvuGGSFSqfFKzsLAQM2fO1LpfmUyGWbNmwdPTE9OnT1d7/cCBA3Bzc0O3bt1qfT8ffPABeDwe9uzZg/LycoSFheGHH37AlClTVNqFhIRg1qxZ2L59O06ePAmlUokjR45oTHivvfYaDhw4gFOnTmHXrl1QKBTw8PDAuHHjMGXKlBrH71UXGxuLPXv2YNOmTSguLoaDgwMGDBiAGTNmqJ11VV62dHbW/PzCkiVLIBQKsXv3bsTHx8Pc3Bzt27fHmDFjuGReqbb+NQSGbag7qk3s2rVrAFCngZOVSktLkfn9IqRbVM2kEDV6u9FPDl1aWopbt27B399f5+v7xkJT31B/GYZYLEZsbCzeeecdvWZQASqe3pw7dy4kEglWrVqlMlUaUPFEYr9+/fD6669j4sSJDRl2o5g3bx7Onj2LhIQECAQCnefpfNrx48cRFxeHP/74AyKRqM7x1Na/5eXlKCkpwfr167FhwwacOXOmxgRe+Tt248YNiMViTJ48uU4D3I3+Hp5cqXot3dKu9mvihBDDs7GxweTJk7Fhwwa9lwdauHAhcnJy8M0336h9GAPAjh07IBAIar3c2pw8fPgQ0dHRePnll+u8j7Nnz2LIkCH1SnZA7f27bds2REdH6zUGsCEY/SVNBVs1u4oA5uALmu+0OIQQVVOnTq3xSU9NsrKy8Ntvv8HMzEzlcuW6deu4e1AvvfRSi0p2U6ZMwXPPPQcA9brK8N5779U7Fl36d+DAgSr3Vpvq/p7RJzwZqhKeqcDOgJEQQpqCu7t7g8xN2Zz4+vpy9y4NTZf+bdeuHdq1a/qJ+Y37kqaShZxXNZ2YmYm94WIhhBDSqIw74ZWXQyqoSnimZro99UQIIaTlMeqEx5aUqSQ8MwsnA0ZDCCGkMRl1wlMUP4GSVzUTAs2dSeqjhY7wIaTZq/zdqu/vmFEnPGnRI5WymY1+qwcTAlSsNwZUDLQlhDQ8qVQKAPVerd2oE55MnKNSNrVr+qeGSMsnEAggEAg0zllICKkflmWRm5sLqVRa7y+VRj0sQVqimvDMHdwMFAlpyRiGgbu7O9LS0vDw4UPY2trS5OOE1BPLspBKpcjNzUVhYSFyc3OhVCrBMIzOE14/zbgTXlmeStnUgc7wSN04OTmhuLgYWVlZePDggaHDIaTVqEx6YrEYxcXF6NixI3cbQV/GnfDK87l/C5SmEJjov3IwIUDFWZ6XlxeKi4vx999/A6hYRseYzvTkcjnEYjFsbGw0TidlzKhvNKutX+RyOWQyGZRKJcRiMfh8PgIDA+v8e2XUPS+XFXH/NlUadiVe0jpUzhh/5coVPHnyxKie3JTL5SgoKIBMJqMP9adQ32ima78wDIN27dqhc+fO8Pev+6LKRt3z1qbtkSOpWHXBQdA8puUhLRvDMAgKCkJAQABKS0v1ntS4JZNIJLhz5w6EQiG30CmpQH2jma79wuPxYGlpWed7d5WMOuG59o4DfpGAz1fCY1TNqyITog8ejwdra2tDh9GkBAIBLC0tYWNjQ8skPYX6RrOm7hejTniMsyMK+r8Ef39/COiHkBBCWjWjHodHCCHEeFDCI4QQYhQo4RFCCDEKlPAIIYQYBUp4hBBCjAIlPEIIIUaBEh4hhBCjQAmPEEKIUaCERwghxChQwiOEEGIUGLaFTud+8eJFsCwLU1PTOu+DZVnIZDKYmJgY1TIutaF+0Y76RjvqG+2obzRryH4xNTWFSCSqsU2LnUuzIX5oGIapV8JsrahftKO+0Y76RjvqG82aul9a7BkeIYQQog+6h0cIIcQoUMIjhBBiFCjhEUIIMQqU8AghhBgFSniEEEKMAiU8QgghRoESHiGEEKNACY8QQohRoIRHCCHEKFDCI4QQYhQo4RFCCDEKlPAIIYQYBaNMeMnJyXj11VcRGhqKHj16ID4+HlKp1NBhGVxaWhoWLlyI4cOHIyAgAEOHDjV0SM3C/v378cYbbyAmJgahoaEYPnw4fv/9d9C868Dx48cxbtw4dOvWDUFBQejfvz+WLFkCsVhs6NCanZKSEsTExEAkEuHatWuGDsegEhISIBKJ1P588cUXjXrcFrs8UF0VFhZi4sSJ8PLywsqVK5GdnY2lS5eirKwMCxcuNHR4BnX37l0cP34cnTt3hlKppA/0/2zatAnu7u6YN28eHBwccPr0afzvf//Do0ePMGPGDEOHZ1AFBQUICQnB+PHjYW9vj7t372LlypW4e/cuNm7caOjwmpXVq1dDoVAYOoxmZf369bCxseHKbdu2bdwDskZmzZo1bGhoKJufn8/Vbd++nfX392cfPXpkuMCaAYVCwf37vffeY4cMGWLAaJqPvLw8tboFCxawYWFhKn1GKvzyyy+sUCg0+t+n6u7du8eGhoay27ZtY4VCIXv16lVDh2RQO3bsYIVCocbfrcZkdJc0T5w4gejoaNjb23N1gwYNglKpxKlTpwwXWDPA4xndj4NOHB0d1er8/f1RXFyM0tJSA0TUvFX+bslkMsMG0ox88sknGDt2LDp27GjoUIya0X3CpaSkwNvbW6XO1tYWzs7OSElJMVBUpKX5999/0bZtW1hbWxs6lGZBoVCgvLwcN27cwLfffot+/frBw8PD0GE1CwcOHMCdO3cwffp0Q4fS7AwdOhT+/v7o378/1q5d2+iXfI3uHl5RURFsbW3V6u3s7FBYWGiAiEhLc+HCBezbtw/vvfeeoUNpNvr27Yvs7GwAQK9evbB8+XIDR9Q8SCQSLF26FLNnz6YvR9U4Oztj5syZ6Ny5MxiGwV9//YWvv/4a2dnZjfoshdElPELq49GjR5g9ezaioqIwYcIEQ4fTbHz//feQSCS4d+8evvvuO0ybNg0//PAD+Hy+oUMzqO+++w5OTk54/vnnDR1Ks9KrVy/06tWLK/fs2RNmZmbYvHkzpk2bBhcXl0Y5rtFd0rS1tdX4yHRhYSHs7OwMEBFpKYqKivD666/D3t4eK1eupHue1fj5+aFLly4YM2YMVq9ejXPnzuHQoUOGDsugsrKysHHjRrz11lsQi8UoKiri7vmWlpaipKTEwBE2L4MGDYJCocCtW7ca7RhGd4bn7e2tdq9OLBYjJydH7d4eIZXKysoQFxcHsViMX375ReVRaqJKJBLBxMQE6enphg7FoDIzMyGTyTB16lS11yZMmIDOnTvj119/NUBkxsvoEl5MTAzWrFmjci/vwIED4PF46NGjh4GjI82RXC7H22+/jZSUFGzdurXxxwq1cFeuXIFMJjP6h1b8/f3x448/qtTdunULS5YswUcffYTg4GADRdY87du3D3w+HwEBAY12DKNLeGPHjsWWLVswffp0xMXFITs7G/Hx8Rg7dqzRf5BJJBIcP34cQMXlmOLiYhw4cAAAEBkZqfHxfGPw0Ucf4ejRo5g3bx6Ki4tx+fJl7rWAgACYmpoaLjgDmzFjBoKCgiASiWBubo7bt29jw4YNEIlEiI2NNXR4BmVra4uoqCiNrwUGBiIwMLCJI2o+Jk+ejKioKIhEIgDAkSNH8Ouvv2LChAlwdnZutOMyLGt802kkJydj8eLFuHTpEqysrDB8+HDMnj3bqD+4gIpLMP3799f42o8//qj1l7e169evH7KysjS+duTIEaM+k/n++++xb98+pKeng2VZuLu7Y8CAAZg8eTI9lajBuXPnMGHCBPz+++9GfYb3ySef4OTJk3j06BGUSiW8vLwwZswYjB8/HgzDNNpxjTLhEUIIMT70mBkhhBCjQAmPEEKIUaCERwghxChQwiOEEGIUKOERQggxCpTwCCGEGAVKeIQQQowCJTxCCCFGgRIeaZESEhIgEomQmZnZYPtcuXIlN9VRUzLUcVsSpVKJoUOH4rvvvjN0KACA/Px8hIaGclPxkZaBEh5pEHfv3sU777yDXr16ISgoCD179sTcuXNx9+7deu13zZo1OHz4cANFaTgSiQQrV67EuXPnDB2KXu7du4eVK1c26BeLukhMTMTDhw8xbtw4rq6kpAQrVqzA5MmTERkZCZFIhISEhHodp/KLlKY/OTk5XDsHBweMHj0a33zzTb2OR5oWJTxSbwcPHsTIkSNx9uxZjBo1Ch9++CFGjx6Nc+fOYeTIkfVaF23t2rUaE97w4cNx9epVuLu71yd0FW+88QauXr3aYPurTiKRYNWqVTh//nyTHre+7t27h1WrVmmdS7SpbNiwAUOGDFFZlik/Px/ffvstUlJSGvwM+a233kJ8fLzKn8rVVSq99NJLuHHjBs6cOdOgxyaNx+hWSyANKz09He+++y7at2+PrVu3qqyoMGHCBLzyyit49913sXv3brRv377Bjsvn8xt8NW2BQACBoOl/JQx13Jbi5s2buH37NubNm6dS7+Ligr///hvOzs64du0aRo8e3WDHjImJqXVyZx8fHwiFQuzcuRPR0dENdmzSeOgMj9TL+vXrIZFIsHjxYrXlgxwdHfHxxx+jtLQU69at4+or71klJydj1qxZCAsLQ1RUFD755BOUl5dz7UQiEUpLS7Fz507uslLlh56me3j9+vVDXFwczp07h1GjRiEkJATDhg3jLiMePHgQw4YNQ3BwMEaNGoWbN2+qxPv0vbR58+Zpvby1cuVKAIBUKsU333yDUaNGITw8HKGhoXj55Zdx9uxZbj+ZmZncB+KqVavU9qHpHp5cLse3336L2NhYBAUFoV+/fvjyyy8hlUpV2lW+5wsXLmD06NEIDg5G//79sWvXLh3+94C9e/di1KhR6NKlC8LCwjBs2DBs3ryZ6+NZs2YBqPjyUhl39cuyx48fx8svv4zQ0FB06dIFU6dOVbuMPW/ePHTp0gUZGRmYPHkyQkND0bNnT6xatQq6zF1/+PBhmJiYICIiQqXe1NRUr6VkdIm1uuLiYigUihr32b17dxw9elSn90EMjxIeqZejR4/C3d1d7cOoUteuXeHu7q7x5v7bb7+N8vJyzJ07FzExMdiyZQv+97//ca/Hx8fD1NQUERER3GWlF198scZ40tLSMHfuXPTr1w9z5sxBYWEhpk2bht27d2PJkiUYNmwYZs6cifT0dLz99ttQKpVa9/Xiiy+qXdYaNmwYAHDJvbi4GL/99hsiIyPxzjvvYMaMGXjy5AmmTJmCW7ducW0XLVoEABgwYAC3rwEDBmg99oIFC7BixQoEBARg/vz56Nq1K9auXYvZs2drfM+zZs1Cjx49MG/ePNjZ2WHevHm13j89deoU5syZA1tbW7zzzjuYO3cuIiMjcfHiRQAV/3fjx48HAEybNo2L28fHBwCwa9cuxMXFwdLSEu+88w7efPNN3Lt3Dy+//LLaPT+FQoEpU6bAyckJ//d//4egoCCsXLkSK1asqDFGALh06RKEQiFMTExqbauNPrECFQk+PDwcnTt3xrRp05Camqpxv4GBgSgqKqr3vWrSRFhC6qioqIgVCoXsG2+8UWO7adOmsUKhkBWLxSzLsuyKFStYoVDITps2TaXdokWLWKFQyN66dYurCw0NZd977z21fe7YsYMVCoVsRkYGV9e3b19WKBSyFy9e5OpOnjzJCoVCNiQkhM3KyuLqt2/fzgqFQvbs2bNcXWVc2qSmprLh4eHsq6++ysrlcpZlWVYul7Pl5eUq7QoLC9nu3buz8+fP5+ry8vJYoVDIrlixQm2/Tx/31q1brFAoZD/44AOVdkuXLmWFQiF75swZtff8zz//qBwrKCiIXbp0qdb3wrIs+8knn7BhYWHce9Fk//79av3EsixbXFzMRkREsAsWLFCpz8nJYcPDw1Xq33vvPVYoFLKLFy/m6pRKJTt16lQ2MDCQzcvLqzHOmJgYdubMmTW2uXr1KisUCtkdO3aovaZPrHv37mXnzZvH7ty5kz106BD71VdfsZ07d2ajoqLYBw8eqO374sWLrFAoZPfu3VtjfKR5oDM8UmclJSUAACsrqxrbVb5e2b7SK6+8olKufALvxIkTdY7J19cXXbp04cqdO3cGAHTr1g1ubm5q9RkZGTrtt7S0FDNmzICtrS2WL1/O3T/k8/ncwsFKpRIFBQWQy+UICgpSu2Sqq8qz4VdffVWl/rXXXlN5vZKvr6/KGbajoyM6duxY63uztbWFRCLBqVOn9I7x9OnTKCoqwpAhQ/DkyRPuD4/HQ+fOnTU+jVr9/5thGLzyyiuQyWS1PvRRUFCg9sBIY8U6ePBgLFmyBCNGjEBsbCzefvttrF+/HgUFBRqHRFTGlZ+fX+f4SNOhO+WkzrQlsqdpS4wdOnRQKXt6eoLH49XrEfh27dqplCuf6nN1dVWpr1yNu6ioSKf9/u9//0N6ejq2b98OBwcHldd27tyJjRs34v79+5DJZFx9XVdCz8rKAo/Hg6enp0q9s7MzbG1t1Z6YfPo9A4CdnR0KCwtrPM7LL7+M/fv34/XXX0fbtm3Ro0cPDBo0CDExMbXGWHmJb+LEiRpff3q1cx6Pp/bQUseOHQFApydA2XrcI9M31qdFRESgc+fONSbmxlylmzQcSnikzmxsbODs7IykpKQa2yUlJaFt27a1frA0xIeGtic3tdXr8kG6efNmJCYmYtmyZfD391d57Y8//sC8efMQGxuLyZMnw8nJCXw+H2vXrtX57FEbXfujrk+rOjk5YdeuXfj7779x4sQJnDhxAgkJCRgxYgQ+//zzGret7Lf4+HiND4405BO09vb2On8x0aQhYnV1dcX9+/fV6iu/VDz9JYg0T5TwSL307dsXv/76Ky5cuKDxwZULFy4gKytL48MmaWlpKt/609LSoFQq63xm1BguXLiA+Ph4TJw4Ec8995za63/++Sfat2+PVatWqSSopx/G0CeZu7u7Q6lUIi0tjXtABAByc3NRVFTUoGMPTU1N0a9fP/Tr1w9KpRKLFi3CL7/8gjfffBMdOnTQGnfl/5uTkxO6d+9e63GUSiUyMjK4szoAXAKp7f14e3vX66xf31g1ycjI0JjUKuOq/v9Emi+6h0fqZfLkyTA3N8eHH36odh+joKAAH374ISwsLDBlyhS1bbdu3apS/umnnwBA5ZKapaVlvb7d18fjx4/x9ttvIywsDO+++67GNpVnB9XPFK9cuYLLly+rtLOwsACg2yXU3r17AwA3PKDSDz/8oPJ6fT39/8Xj8bjhEZXDHyrjFovFKm179eoFa2trrF27VuUybqUnT56o1VX//2ZZFlu3boWJiUmtY9hCQ0Nx9+5dtSEZutInVk1xHz9+HDdu3ECvXr3UXrtx4wZsbGzQqVOnOsVGmhad4ZF68fLywtKlS/F///d/GDZsGEaPHg0PDw9kZWXh999/R35+Pr788ku1+1FAxbfjadOmoVevXrh8+TJ2796NoUOHws/Pj2sTGBiIM2fO4IcffoCLiws8PDy4B04a2yeffMINMdi7d6/KayKRCH5+fujTpw8OHjyI6dOno0+fPsjMzMT27dvh6+uL0tJSrr25uTl8fX2xf/9+eHl5wd7eHp06dYJQKFQ7rp+fH0aOHIlffvkFRUVF6Nq1K65du4adO3ciNjYW3bp1a5D3t2DBAhQWFqJbt25o27YtHjx4gJ9++gn+/v7cGYu/vz/4fD7WrVsHsVgMU1NTdOvWDU5OTli0aBHeffddjBo1CoMHD4ajoyMePHiA48ePIywsDAsXLuSOZWZmhpMnT+K9995DSEgITp48iWPHjmHatGlq4zef1r9/f6xevRrnz59Hz549VV776aefUFRUhMePHwOoGCbz6NEjAMD48eNhY2MDa2trnWMdO3Ys/P39ERQUBBsbG9y8eRM7duxAu3btMG3aNLXYTp8+jb59+9I9vBaCEh6pt0GDBsHb2xvff/89fv/9dxQUFMDe3h5RUVGIi4vT+KEOAF9//TW++eYbLF++HAKBAOPGjVM7k5o3bx4WLlyIr7/+GmVlZRg5cmSTJbz8/HwoFAosWbJE7bUZM2bAz88Po0aNQm5uLn755Rf8/fff8PX1xbJly3DgwAG1acQ++eQTLF68GEuWLIFMJsOMGTO09s0nn3wCDw8P7Ny5E4cPH0abNm0QFxeHGTNmNNj7e+655/Drr7/i559/RlFREZydnTFo0CDMnDkTPF7FxR9nZ2d89NFHWLt2LT744AMoFAr8+OOPcHJywrBhw+Di4oLvv/8eGzZsgFQqRdu2bREREYFRo0apHIvP52P9+vVYtGgRli1bBisrK8yYMQPTp0+vNc6goCCIRCLs379fLeFt3LhR5aGXgwcP4uDBg9z7q3xoSddYBw0ahOPHj+PUqVMoKyuDs7MzxowZgxkzZqBNmzYqx05OTsadO3fw/vvv69HrxJAYtj6PPxFSBytXrsSqVatw5syZWr/dk5Zv3rx5+PPPP3Hp0qU672PXrl34+OOPcezYsXoNUWhIn376KS5cuICEhAQ6w2sh6B4eIaTZe+655+Dm5qZ239dQ8vPz8fvvv+Ptt9+mZNeC0CVNQkizx+PxkJiYaOgwOA4ODvU6YyWGQWd4hBBCjALdwyOEEGIU6AyPEEKIUaCERwghxChQwiOEEGIUKOERQggxCpTwCCGEGAVKeIQQQowCJTxCCCFGgRIeIYQQo/D/Yp8U5LIytzkAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 500x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set(style=\"whitegrid\")\n",
    "\n",
    "plt.figure(figsize=(5,4))\n",
    "ax = plt.subplot(111)\n",
    "ax.spines[['right', 'top']].set_visible(False)\n",
    "\n",
    "layer = 5\n",
    "\n",
    "palette = sns.color_palette(\"husl\", 6)\n",
    "\n",
    "plt.plot(x[:-3], result_dict['val1_rank_pos2'+\"_\"+str(layer)][:-3], label='MRR($v_1$) at $S[5,e_1]$', color=palette[0], linewidth=2.5, zorder=2)\n",
    "plt.plot(x[:-3], result_dict['val2_rank_pos4'+\"_\"+str(layer)][:-3], label='MRR($v_2$) at $S[5,e_2]$', color=palette[1], linewidth=2.5,  zorder=2)\n",
    "\n",
    "plt.annotate('Grokking starts', xy=(0, 1), xytext=(-10, 20),\n",
    "             textcoords='offset points',\n",
    "             fontsize=12)\n",
    "\n",
    "plt.legend(loc='lower right', bbox_to_anchor=(1.0,0.03), fancybox=True, shadow=True, ncol=1, fontsize=12)\n",
    "plt.xlabel(\"Optimization step (1e5)\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "CLM",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
